ECS で「タスクの停止理由」を確認する方法を教えてください
困っていた内容
ECS タスクが予期せず停止しました。
トラブルシューティングのため「タスクの停止理由」を確認する方法を教えてください。
Amazon ECS でタスクが停止した場合のトラブルシューティング | AWS re:Post
どう対応すればいいの?
Amazon ECS コンソールの場合は「タスク」タブから確認します。
AWS CLI の場合はdescribe-tasksコマンドから確認します。
Amazon ECS コンソールから確認する場合
Amazon ECS コンソールの「クラスター」から、停止したタスクが含まれるクラスターを選択します。
「タスク」タブを選択します。
「希望するステータスをフィルタリング」を「あらゆる希望するステータス」に変更します。
停止した確認したいタスク(前回のステータス
が停止済み
)を選択します。
タスクの停止理由が表示されます。
今回の場合は「Task stopped by user」となります。
なお、トラブルシューティングの際は「コンテナ」セクションの「ステータス」の確認も有用です。
終了コードの意味は次のドキュメントをご確認ください。
Amazon ECS でタスクが停止した場合のトラブルシューティング | AWS re:Post
一般的な終了コード
AWS CLIから確認する場合
list-tasksコマンドを実行して、クラスター内のtaskArnsを取得します。
$ aws ecs list-tasks \
--cluster hato-ecs-cluster \
--desired-status STOPPED
{
"taskArns": [
"arn:aws:ecs:ap-northeast-1:123456789012:task/hato-ecs-cluster/79a300d3e9f1455a9b7ca44eca57eaf8"
]
}
describe-tasksコマンドを実行して、stoppedReason
を確認します。
$ aws ecs describe-tasks \
--cluster hato-ecs-cluster \
--tasks arn:aws:ecs:ap-northeast-1:123456789012:task/hato-ecs-cluster/79a300d3e9f1455a9b7ca44eca57eaf8
{
"tasks": [
{
"attachments": [
{
"id": "09afe15e-aff6-45e6-95f5-10c394a9ce21",
"type": "ElasticNetworkInterface",
"status": "DELETED",
"details": [
{
"name": "subnetId",
"value": "subnet-032692e9def4f1d0f"
},
{
"name": "networkInterfaceId",
"value": "eni-018f8baedd6123803"
},
{
"name": "macAddress",
"value": "0a:da:56:ca:57:57"
},
{
"name": "privateDnsName",
"value": "ip-10-0-1-205.ap-northeast-1.compute.internal"
},
{
"name": "privateIPv4Address",
"value": "10.0.1.205"
}
]
}
],
"attributes": [
{
"name": "ecs.cpu-architecture",
"value": "x86_64"
}
],
"availabilityZone": "ap-northeast-1c",
"capacityProviderName": "FARGATE_SPOT",
"clusterArn": "arn:aws:ecs:ap-northeast-1:123456789012:cluster/hato-ecs-cluster",
"connectivity": "CONNECTED",
"connectivityAt": "2024-01-02T11:06:17.932000+09:00",
"containers": [
{
"containerArn": "arn:aws:ecs:ap-northeast-1:123456789012:container/hato-ecs-cluster/79a300d3e9f1455a9b7ca44eca57eaf8/2eb86e18-bf6a-46ce-a692-999346107dbb",
"taskArn": "arn:aws:ecs:ap-northeast-1:123456789012:task/hato-ecs-cluster/79a300d3e9f1455a9b7ca44eca57eaf8",
"name": "hato-container",
"image": "123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/alpine:latest",
"imageDigest": "sha256:6457d53fb065d6f250e1504b9bc42d5b6c65941d57532c072d929dd0628977d0",
"runtimeId": "79a300d3e9f1455a9b7ca44eca57eaf8-1453530749",
"lastStatus": "STOPPED",
"exitCode": 137,
"networkBindings": [],
"networkInterfaces": [
{
"attachmentId": "09afe15e-aff6-45e6-95f5-10c394a9ce21",
"privateIpv4Address": "10.0.1.205"
}
],
"healthStatus": "UNKNOWN",
"cpu": "0"
}
],
"cpu": "256",
"createdAt": "2024-01-02T11:06:09.664000+09:00",
"desiredStatus": "STOPPED",
"enableExecuteCommand": false,
"executionStoppedAt": "2024-01-02T17:30:09.914000+09:00",
"group": "service:hato-ecs-service",
"healthStatus": "UNKNOWN",
"lastStatus": "STOPPED",
"launchType": "FARGATE",
"memory": "512",
"overrides": {
"containerOverrides": [
{
"name": "hato-container"
}
],
"inferenceAcceleratorOverrides": []
},
"platformVersion": "1.4.0",
"platformFamily": "Linux",
"pullStartedAt": "2024-01-02T11:06:32.662000+09:00",
"pullStoppedAt": "2024-01-02T11:06:33.632000+09:00",
"startedAt": "2024-01-02T11:06:36.117000+09:00",
"startedBy": "ecs-svc/1108618674869949708",
"stopCode": "UserInitiated",
"stoppedAt": "2024-01-02T17:30:36.601000+09:00",
"stoppedReason": "Task stopped by user",
"stoppingAt": "2024-01-02T11:09:28.059000+09:00",
"tags": [],
"taskArn": "arn:aws:ecs:ap-northeast-1:123456789012:task/hato-ecs-cluster/79a300d3e9f1455a9b7ca44eca57eaf8",
"taskDefinitionArn": "arn:aws:ecs:ap-northeast-1:123456789012:task-definition/hato-taskdefinition:15",
"version": 7,
"ephemeralStorage": {
"sizeInGiB": 20
}
}
],
"failures": []
}
参考資料
停止したタスクは 1 時間だけコンソールに表示されます。
Currently, stopped tasks appear in the returned results for at least one hour.